//
// Created by francklinson on 2021/10/21 AT 11:16.
//
#include <iostream>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <algorithm>
#include <functional>
#include <climits>
#include <string>

using namespace std;

class Solution {
public:
    int findGCD(vector<int> &nums) {
        int max = 0, min = INT_MAX;
        // 找到最大和最小
        for (auto &x: nums) {
            if (x > max) max = x;
            if (x < min) min = x;
        }
        // 最大和最小的最大公约数
        return  __gcd(max,min); // __gcd在algorithm函数库中  辗转相除法
    }
};

int main() {
    vector<int> nums{2, 5, 6, 9, 10};
    Solution solution;
    cout << solution.findGCD(nums) << endl;
    return 0;
}

